
package top.iridescent.model;

import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * 分页数据模型
 */
@Data
public class PageModel<T> implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 总记录数
     */
    private int totalCount;
    /**
     * 每页记录数
     */
    private int pageSize;
    /**
     * 总页数
     */
    private int totalPage;
    /**
     * 当前页数
     */
    private int currPage;
    /**
     * 列表数据
     */
    private List<T> list;

    /**
     * 分页
     *
     * @param list       列表数据
     * @param totalCount 总记录数
     * @param pageSize   每页记录数
     * @param currPage   当前页数
     */
    public PageModel(List<T> list, int totalCount, int pageSize, int currPage) {
        this.list = list;
        this.totalCount = totalCount;
        this.pageSize = pageSize;
        this.currPage = currPage;
        this.totalPage = (int) Math.ceil((double) totalCount / pageSize);
    }

    public  PageModel(List<T> list, long totalCount, long pageSize, long currPage) {

        this.list = list;
        this.totalCount = new Long(totalCount).intValue();
        this.pageSize = new Long(pageSize).intValue();
        this.currPage = new Long(currPage).intValue();
        this.totalPage = (int) Math.ceil((double) totalCount / pageSize);
    }


}
